home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Comm / AmiTCP30b2.lha / netinclude / sys / cdefs.h < prev    next >
C/C++ Source or Header  |  1994-03-22  |  5KB  |  158 lines

  1. /*
  2.  * $Id: cdefs.h,v 1.12 1994/03/22 07:18:15 jraja Exp $
  3.  *
  4.  * Copyright (c) 1993 AmiTCP/IP Group, <amitcp-group@hut.fi>
  5.  *                    Helsinki University of Technology, Finland.
  6.  *                    All rights reserved.
  7.  *
  8.  * HISTORY
  9.  * $Log: cdefs.h,v $
  10.  * Revision 1.12  1994/03/22  07:18:15  jraja
  11.  * Added compiler dependent definitions ASM and REG(x).
  12.  *
  13.  * Revision 1.11  1993/06/04  11:16:15  jraja
  14.  * Fixes for first public release.
  15.  *
  16.  * Revision 1.10  1993/05/17  01:02:04  ppessi
  17.  * Changed RCS version
  18.  *
  19.  * Revision 1.9  1993/05/05  16:10:47  puhuri
  20.  * Fixes for final demo.
  21.  *
  22.  * Revision 1.8  93/04/13  21:56:30  21:56:30  jraja (Jarno Tapio Rajahalme)
  23.  * Added new keyword: ALIGNED.
  24.  * 
  25.  * Revision 1.7  93/04/11  22:21:36  22:21:36  jraja (Jarno Tapio Rajahalme)
  26.  * Added function modifier STKARGFUN to be used with functions whose arguments
  27.  * MUST be passed in stack.
  28.  * 
  29.  * Revision 1.6  93/03/07  00:57:12  00:57:12  jraja (Jarno Tapio Rajahalme)
  30.  * Added definition for REGARGFUN keyword.
  31.  * 
  32.  * Revision 1.5  93/03/03  20:08:54  20:08:54  jraja (Jarno Tapio Rajahalme)
  33.  * Removed redundant copyright message.
  34.  * 
  35.  * Revision 1.4  93/03/03  20:06:32  20:06:32  jraja (Jarno Tapio Rajahalme)
  36.  * Cleanup. Changed _CDEFS_H_ to SYS_CDEFS_H.
  37.  * 
  38.  * Revision 1.3  93/03/03  12:32:04  12:32:04  jraja (Jarno Tapio Rajahalme)
  39.  * Fixed _SASC_60 to __SASC_60.
  40.  * Added SAVEDS definition.
  41.  * 
  42.  * Revision 1.2  92/12/22  00:26:32  00:26:32  jraja (Jarno Tapio Rajahalme)
  43.  * Added trailing underscores to __GNUC__ keywords and SASC6.0 inline
  44.  * definition
  45.  * 
  46.  * Revision 1.1  92/11/20  15:41:43  15:41:43  jraja (Jarno Tapio Rajahalme)
  47.  * Initial revision
  48.  * 
  49.  *
  50.  */
  51.  
  52. /*
  53.  * Copyright (c) 1991 The Regents of the University of California.
  54.  * All rights reserved.
  55.  *
  56.  * Redistribution and use in source and binary forms, with or without
  57.  * modification, are permitted provided that the following conditions
  58.  * are met:
  59.  * 1. Redistributions of source code must retain the above copyright
  60.  *    notice, this list of conditions and the following disclaimer.
  61.  * 2. Redistributions in binary form must reproduce the above copyright
  62.  *    notice, this list of conditions and the following disclaimer in the
  63.  *    documentation and/or other materials provided with the distribution.
  64.  * 3. All advertising materials mentioning features or use of this software
  65.  *    must display the following acknowledgement:
  66.  *    This product includes software developed by the University of
  67.  *    California, Berkeley and its contributors.
  68.  * 4. Neither the name of the University nor the names of its contributors
  69.  *    may be used to endorse or promote products derived from this software
  70.  *    without specific prior written permission.
  71.  *
  72.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  73.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  74.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  75.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  76.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  77.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  78.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  79.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  80.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  81.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  82.  * SUCH DAMAGE.
  83.  *
  84.  *    @(#)cdefs.h    7.6 (Berkeley) 5/4/91
  85.  */
  86.  
  87. #ifndef    SYS_CDEFS_H
  88. #define    SYS_CDEFS_H
  89.  
  90. #if defined(__cplusplus)
  91. #define    __BEGIN_DECLS    extern "C" {
  92. #define    __END_DECLS    };
  93. #else
  94. #define    __BEGIN_DECLS
  95. #define    __END_DECLS
  96. #endif
  97.  
  98. /*
  99.  * SAVEDS should be used in all function definitions which will be called 
  100.  * from other tasks than AmiTCP/IP. Is restores the global data base pointer
  101.  * as the first thing in the function body.
  102.  *
  103.  * REGARGFUN contains special keywords which should be used when functions
  104.  * used through shared library are referenced.
  105.  */
  106. #if __SASC_60
  107. #define SAVEDS __saveds
  108. #define REGARGFUN __asm
  109. #define STKARGFUN __stdargs
  110. #define ALIGNED __aligned
  111. #define ASM __asm
  112. #define REG(x) register __##x
  113. #else
  114. #define SAVEDS
  115. #define REGARGFUN
  116. #define STKARGFUN
  117. #define ALIGNED
  118. #define ASM
  119. #define REG(x)
  120. #endif
  121.  
  122. /*
  123.  * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
  124.  * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
  125.  * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
  126.  * in between its arguments.  __CONCAT can also concatenate double-quoted
  127.  * strings produced by the __STRING macro, but this only works with ANSI C.
  128.  */
  129. #if defined(__STDC__) || defined(__cplusplus)
  130. #define    __P(protos)    protos        /* full-blown ANSI C */
  131. #define    __CONCAT(x,y)    x ## y
  132. #define    __STRING(x)    #x
  133.  
  134. #if __SASC_60
  135. #define inline          __inline
  136. #endif
  137.  
  138. #else    /* !(__STDC__ || __cplusplus) */
  139. #define    __P(protos)    ()        /* traditional C preprocessor */
  140. #define    __CONCAT(x,y)    x/**/y
  141. #define    __STRING(x)    "x"
  142.  
  143. #if __GNUC__
  144. #define    const        __const__    /* GCC: ANSI C with -traditional */
  145. #define    inline        __inline__
  146. #define    signed        __signed__
  147. #define    volatile    __volatile__
  148.  
  149. #else    /* !__GNUC__ */
  150. #define    const                /* delete ANSI C keywords */
  151. #define    inline
  152. #define    signed
  153. #define    volatile
  154. #endif    /* !__GNUC__ */
  155. #endif    /* !(__STDC__ || __cplusplus) */
  156.  
  157. #endif /* !SYS_CDEFS_H */
  158.